package cn.tedu.micro.demo.redis;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;

/**
 * 测试容器中的bean对象
 * 所以这个类加载必须在spring启动之后
 * spring-boot-starter-test已经完成了工作
 */
@SpringBootTest(classes = RedisDemo.class)
public class RedisTestDemo01 {
    //搭建好测试单元类,容器中可以编写代码,所有的bean都可以在这里测试
    @Autowired
    private RedisTemplate redisTemplate;
    //案例1 set name 王翠花
    @Test
    public void testSet(){
        //1.了解你执行的动作 读写 set
        //2.知道读写命令 对应的redis数据类型 string
        //3.获取redisTemplate的操作子对象
        ValueOperations stringOps = redisTemplate.opsForValue();
        //4.调用api方法 完成读写 只要是string类型命令
        stringOps.set("name","王翠花");
    }
    //案例2 get name
    @Test
    public void testGet(){
        ValueOperations stringOps = redisTemplate.opsForValue();
        String name = (String)stringOps.get("name");
        System.out.println("获取结果:"+name);
    }
    //案例3 lpush list01 100  lpush list01 200
    @Test
    public void testLpush(){
        ListOperations listOps = redisTemplate.opsForList();
        listOps.leftPush("list01","100");
        listOps.leftPush("list01","200");
    }
    //案例4 rpop list01
    @Test
    public void testRpop(){
        ListOperations listOps = redisTemplate.opsForList();
        String first = (String)listOps.rightPop("list01");
        System.out.println("冒泡元素值:"+first);
    }
}
